home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib09.dsk
/
ELECTRIC ABACUS.bas
< prev
next >
Wrap
BASIC Source File
|
2023-02-26
|
6KB
|
248 lines
1 REM ******************************
2 REM * ELECTRIC ABACUS *
3 REM * BY PAUL RAYMER *
4 REM * COPYRIGHT (C) 1982 *
5 REM * BY MICRO-SPARC INC *
6 REM * LINCOLN, MA. 01773 *
7 REM ******************************
100 TEXT : HOME : CLEAR
110 VTAB 3
120 PRINT "*************************"
130 FOR X = 2 TO 10: PRINT "*"; SPC( 23);"*"
140 NEXT X
150 PRINT "*************************"
160 CALL -384: POKE 34,4: POKE 35,12: POKE 32,2: POKE 33,22: CALL -936
170 SPEED= 175
180 PRINT " NIBBLE MAGAZINE "
190 PRINT " PRESENTS "
200 PRINT " PAUL RAYMER'S "
210 PRINT " "
220 PRINT " "
230 PRINT " "
240 PRINT " "
250 PRINT " ELECTRIC ABACUS "
260 PRINT " "
270 PRINT " COPYRIGHT (C) 1982 "
300 PRINT " BY MICRO-SPARC INC "
330 FOR M = 1 TO 1500: NEXT M: CALL -380: TEXT : SPEED= 255: CALL -936
340 HOME
350 REM
360 REM ELECTRIC ABACUS
370 REM PAUL RAYMER
380 REM POB 42831
390 REM LAS VEGAS NV 89116
400 REM II/II/MCMLXXXI
410 REM
420 GOTO 680
430 REM
440 REM INITIALIZE
450 REM
460 COLOR= 15
470 FOR X = 3 TO 35 STEP 4
480 VLIN 3,29 AT X
490 NEXT X
500 COLOR= 1
510 HLIN 0,38 AT 1: HLIN 0,38 AT 2: HLIN 0,38 AT 11: HLIN 0,38 AT 12: HLIN 0,38 AT 30: HLIN 0,38 AT 31
520 VLIN 1,31 AT 0: VLIN 1,31 AT 38
530 REM
540 REM ADD BEADS
550 REM
560 COLOR= 13
570 FOR X = 34 TO 2 STEP -4
580 FOR Y = 3 TO 6 STEP 3
590 FOR Z = 16 TO 28 STEP 3
600 HLIN X,X +2 AT Y
610 HLIN X,X +2 AT Y +1
620 HLIN X,X +2 AT Z
630 HLIN X,X +2 AT Z +1
640 NEXT Z
650 NEXT Y
660 NEXT X
670 RETURN
680 GR
690 GOSUB 460
700 GOSUB 2140
710 INPUT "ENTER NUMBER ";A$
720 GOSUB 2230
730 IF A$ = "C" THEN A$ = "000000000"
740 A = VAL(A$)
750 FOR I = LEN(A$) TO 1 STEP -1
760 I$(I) = MID$ (A$,I,1)
770 NEXT I
780 GOTO 1810
790 REM
800 REM MOVE BEADS
810 REM
820 REM 0
830 F = 9:E = 13
840 GOSUB 1670
850 GOSUB 1540
860 RETURN
870 REM
880 REM 1
890 REM
900 GOSUB 820
910 E = 16
920 GOSUB 1540
930 RETURN
940 REM
950 REM 2
960 REM
970 GOSUB 820
980 E = 19
990 GOSUB 1540
1000 RETURN
1010 REM
1020 REM 3
1030 REM
1040 GOSUB 820
1050 E = 22
1060 GOSUB 1540
1070 RETURN
1080 REM
1090 REM 4
1100 REM
1110 GOSUB 820
1120 E = 25
1130 GOSUB 1540
1140 RETURN
1150 REM
1160 REM 5
1170 REM
1180 GOSUB 820
1190 F = 6
1200 GOSUB 1670
1210 RETURN
1220 REM
1230 REM 6
1240 REM
1250 GOSUB 880
1260 F = 6
1270 GOSUB 1670
1280 RETURN
1290 REM
1300 REM 7
1310 REM
1320 GOSUB 950
1330 F = 6
1340 GOSUB 1670
1350 RETURN
1360 REM
1370 REM 8
1380 REM
1390 GOSUB 1020
1400 F = 6
1410 GOSUB 1670
1420 RETURN
1430 REM
1440 REM 9
1450 REM
1460 GOSUB 1090
1470 F = 6
1480 GOSUB 1670
1490 RETURN
1500 REM
1510 REM REBUILD 1 TO 5
1520 REM (EARTH)
1530 REM
1540 REM
1550 COLOR= 13
1560 FOR X = 28 TO 13 STEP -3
1565 IF X = E THEN COLOR= 15: PLOT 3 +H,X: PLOT 3 +H,X +1: COLOR= 0: PLOT 2 +H,X: PLOT 2 +H,X +1: PLOT 4 +H,X: PLOT 4 +H,X +1: COLOR= 13: GOTO 1590
1570 HLIN 2 +H,4 +H AT X
1580 HLIN 2 +H,4 +H AT X +1
1590 NEXT X
1650 RETURN
1660 REM
1670 REM REBUILD 6 TO 9
1680 REM (HEAVEN)
1690 REM
1700 COLOR= 13
1710 FOR X = 3 TO 9 STEP 3
1715 IF X = F THEN COLOR= 15: PLOT 3 +H,X: PLOT 3 +H,X +1: COLOR= 0: PLOT 2 +H,X: PLOT 2 +H,X +1: PLOT 4 +H,X: PLOT 4 +H,X +1: COLOR= 13: GOTO 1740
1720 HLIN 2 +H,4 +H AT X
1730 HLIN 2 +H,4 +H AT X +1
1740 NEXT X
1800 RETURN
1810 HOME
1820 PRINT A
1830 H = 32
1840 FOR J = LEN(A$) TO 1 STEP -1
1850 R = VAL(I$(J))
1860 IF R = 0 THEN GOSUB 820
1870 ON R GOSUB 880,950,1020,1090,1160,1230,1300,1370,1440,820
1880 H = H -4
1890 NEXT J
1900 T = A
1910 F$ = A$
1920 GOSUB 2140
1930 PRINT "(A)DD (S)UBTRACT (M)ULTIPLY (D)IVIDE": INPUT "(C)LEAR -- (Q)UIT? ";ANS$
1940 IF LEFT$(ANS$,1) = "A" THEN GOSUB 2310
1950 IF LEFT$(ANS$,1) = "S" THEN GOSUB 2390
1960 IF LEFT$(ANS$,1) = "M" THEN GOSUB 2460
1970 IF LEFT$(ANS$,1) = "D" THEN GOSUB 2550
1980 IF LEFT$(ANS$,1) = "Q" THEN END
1990 IF LEFT$(ANS$,1) = "C" THEN GOTO 340
2000 VTAB 22: CALL -958: INPUT "WHAT NUMBER ? ";B$
2010 B = VAL(B$)
2020 IF LEFT$(ANS$,1) = "A" THEN A$ = STR$(T +B)
2030 IF LEFT$(ANS$,1) = "S" THEN A$ = STR$(T -B)
2040 IF LEFT$(ANS$,1) = "M" THEN A$ = STR$(T *B)
2050 IF LEFT$(ANS$,1) = "D" THEN A$ = STR$( INT(T/B))
2060 IF LEN(A$) > = LEN(F$) THEN 2090
2070 A$ = "0" +A$
2080 GOTO 2060
2090 GOSUB 2230
2100 GOTO 740
2110 REM
2120 REM GRAPHIC SYMBOLS
2130 REM
2140 REM ENTER
2150 REM
2160 GOSUB 2230
2170 COLOR= 11
2180 HLIN 1,5 AT 33: HLIN 3,5 AT 36
2190 VLIN 34,35 AT 1: VLIN 34,35 AT 5
2200 PLOT 3,37: PLOT 3,39
2210 RETURN
2220 REM
2230 REM CLEAR BOX
2240 REM
2250 COLOR= 0
2260 FOR X = 33 TO 39
2270 HLIN 1,5 AT X
2280 NEXT X
2290 RETURN
2300 REM
2310 REM PLUS SIGN
2320 REM
2330 GOSUB 2230
2340 COLOR= 9
2350 HLIN 1,5 AT 36
2360 VLIN 33,39 AT 3
2370 RETURN
2380 REM
2390 REM MINUS SIGN
2400 REM
2410 GOSUB 2230
2420 COLOR= 3
2430 HLIN 1,5 AT 36
2440 RETURN
2450 REM
2460 REM TIMES SIGN
2470 REM
2480 GOSUB 2230
2490 COLOR= 7
2500 PLOT 1,33: PLOT 5,33: PLOT 2,34: PLOT 4,34
2510 PLOT 3,35: PLOT 3,36: PLOT 3,37
2520 PLOT 2,38: PLOT 4,38: PLOT 1,39: PLOT 5,39
2530 RETURN
2540 REM
2550 REM DIVIDE SIGN
2560 REM
2570 GOSUB 2230
2580 REM
2590 COLOR= 14
2600 HLIN 1,5 AT 36
2610 PLOT 3,34: PLOT 3,38
2620 RETURN